home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / magicbit.d < prev    next >
Text File  |  1997-10-26  |  3KB  |  64 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *         MAGIC   Modula's  All purpose  GEM  Interface  Cadre         *
  4.  *                 ÿ         ÿ            ÿ    ÿ          ÿ             *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schrift-  *
  11.  * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung    *
  12.  * ber Public-Domain-H„ndler bedarf der ausdrcklichen schriftlichen   *
  13.  * Genehmigung des Autors!                                              *
  14.  *                                                                      *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
  16.  * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins-  *
  17.  * besondere dieser Urheberrechts-Vermerk nicht ver„ndert wird, und     *
  18.  * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor    *
  19.  * beh„lt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
  20.  * von Grnden zu widerrufen.                                           *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. (*----------------------------------------------------------------------*
  24.  * MagicBitOps  Bit-Operationen leichtgemacht                           *
  25.  *                                                                      *
  26.  * ACHTUNG:                                                             *
  27.  * --------                                                             *
  28.  * Durch den ARRAY OF LOC kann zwar einiges in die Prozeduren rein-     *
  29.  * stopfen, es werden aber nur Werte verarbeitet die 1, 2 oder 4 Bytes  *
  30.  * grož sind!  Gedacht sind die Prozeduren fr einfache Werte wie BYTE, *
  31.  * INTEGER, CARDINAL, LONGINT und LONGCARD.                             *
  32.  *----------------------------------------------------------------------*)
  33.  
  34. DEFINITION MODULE MagicBitOps;
  35.  
  36. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  37.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  38.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  39.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  40.  
  41.  
  42.  
  43.  
  44.  
  45. TYPE    Operation = (and, or, xor);
  46.  
  47. PROCEDURE BitOp (op: Operation; c1, c2: ARRAY OF LOC; VAR val: ARRAY OF LOC);
  48.  
  49. PROCEDURE SetBit (pos: sCARDINAL; VAR val: ARRAY OF LOC);
  50. (* Setzt ein Bit in val an pos *)
  51.  
  52. PROCEDURE ClearBit (pos: sCARDINAL; VAR val: ARRAY OF LOC);
  53. (* L”scht das Bit pos in val *)
  54.  
  55. PROCEDURE IsSet (pos: sCARDINAL; val: ARRAY OF LOC): BOOLEAN;
  56. (* TRUE, wenn ein Bit gesetzt ist *)
  57.  
  58. PROCEDURE ShiftLeft  (VAR val: ARRAY OF LOC; num: sCARDINAL);
  59. PROCEDURE ShiftRight (VAR val: ARRAY OF LOC; num: sCARDINAL);
  60. (* Links- bzw. Rechts-Shiften von val um num Positionen *)
  61.  
  62. END MagicBitOps.
  63.  
  64.